package xyz.xpman.prisonerfitness.kit;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.view.View;

import org.jetbrains.annotations.NotNull;

public class CaptureKit {

    /**
     * 压缩图片
     */
    public static Bitmap zoomImage(Bitmap bitmap, double newWidth, double newHeight) {
        // 获取这个图片的宽和高
        float width = bitmap.getWidth();
        float height = bitmap.getHeight();

        // 创建操作图片用的matrix对象
        Matrix matrix = new Matrix();

        // 计算宽高缩放率
        // float scaleWidth = ((float) newWidth) / width;
        // float scaleHeight = ((float) newHeight) / height;
        // 缩放图片动作
        // 因为宽高不确定的因素,所以不缩放
        // matrix.postScale(scaleWidth, scaleHeight);

        return Bitmap.createBitmap(bitmap, 0, 0, (int) width,
                (int) height, matrix, true);
    }


    /**
     * 截取指定View为图片
     */
    public static Bitmap captureView(@NotNull View view) {
        return captureView(view, null);
    }


    /**
     * 截取指定View为图片
     */
    public static Bitmap captureView(@NotNull View view, Integer eraseColor) {
        final Bitmap bm = Bitmap.createBitmap(
                view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
        // 设置背景为白色（截的图背景是用户设置的或默认透明，透明情况下，不少照片浏览器打开为黑色）
        if (null != eraseColor) {
            bm.eraseColor(eraseColor);
        }
        view.draw(new Canvas(bm));

        return bm;
    }

}
